package com.itheima.d3_abstract;

/*
    在Java中有一个关键字叫：abstract，它就是抽象的意思，可以用它修饰类、成员方法。
    abstract修饰类，这个类就是抽象类；修饰方法，这个方法就是抽象方法。

   抽象类的注意事项、特点
        1 抽象类中不一定有抽象方法，有抽象方法的类一定是抽象类。
        2 类该有的成员（成员变量、方法、构造器）抽象类都可以有。
        3 抽象类最主要的特点：抽象类不能创建对象，仅作为一种特殊的父类，让子类继承并实现。
        4 一个类继承抽象类，必须重写完抽象类的全部抽象方法，否则这个类也必须定义成抽象类。
 */
public class Test1 {
    public static void main(String[] args) {
//        C c = new C();//抽象类最主要的特点：抽象类不能创建对象，仅作为一种特殊的父类，让子类继承并实现。
    }
}

class D extends B {

    @Override
    public void b() {

    }
}

abstract class A {//抽象类中不一定有抽象方法

    public static void a() {
        System.out.println("2121");
    }
}

abstract class E extends B {


}

abstract class B {//有抽象方法的类一定是抽象类。

    public abstract void b();
}

abstract class C {
    public int a;
    public int b;

    public C() {
    }

    public C(int a, int b) {
        this.a = a;
        this.b = b;
    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }
}
